iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
佛心分享-IT 人自學之術

走在Pandas資料操縱與分析的路上持續前進系列 第 12

DAY12 Pandas使用loc、iloc語法取得指定列與欄資料

  • 分享至 

  • xImage
  •  

昨天學會了用loc、iloc語法取得指定列資料,
那麼今天要再更精準地取得指定列與欄資料,
直接來看看範例吧。

範例

首先,先建立一個DataFrame結構的資料,
或是有匯入的資料轉成DataFrame結構也行,
這次的資料結構以JSON格式做轉換,
以資料中的ABC作為索引。
這邊為了方便對照,先印出完整的資料來看。

scoresData = {
    "Chinese":
    {
        "A": 54,
        "B": 76,
        "C": 66,
    },
    "English":
    {
        "A": 61,
        "B": 97,
        "C": 75,
    },
    "Math":
    {
        "A": 71,
        "B": 82,
        "C": 67,
    }
}
scores = pd.DataFrame(scoresData)
print(scores)

印出資料如下,
對照可看出A、B、C三人在三個科目上的成績分別是多少。

   Chinese  English  Math
A       54       61    71
B       76       97    82
C       66       75    67
用loc語法取得指定列與欄資料

若要取得多個索引質資料,中間用,隔開,
然後用中括號[]刮起來;
同樣的取多欄位時也是將欄位名稱用,隔開,
也同樣用中括號[]刮起來。
合併來說就是
在資料後加上.loc[["索引值1","索引值2"],[欄位名稱1,欄位名稱2]]
使用方式如下,
這邊選擇取得索引值ACChineseMath欄位的資料。

print(scores.loc[["A", "C"], ["Chinese", "Math"]])

印出資料如下,
資料結構為DataFrame

   Chinese  Math
A       54    71
C       66    67

對照完整的表可以找出索引值ACChineseMath欄位成績,
也就是輸出的值。

iloc語法取得指定列與欄資料

使用iloc時就是以index數值做操作,
與loc相似,只是把指定資料名稱改為index數值。

若要取得多個索引質資料,列index中間用,隔開,
然後用中括號[]刮起來;
同樣的取多欄位時也是將欄index用,隔開,
也同樣用中括號[]刮起來。
合併來說就是
在資料後加上.iloc[[列index1,列index2],[欄index1,欄index2]]
使用方式如下,
這邊選擇取得索引值列index01欄index012欄位的資料,
對照整資料就是第一、二列的Chinese、English、 Math欄位資料。

print(scores.iloc[[0, 1], [0, 1,2]])

印出資料如下,
資料結構為DataFrame

   Chinese  English  Math
A       54       61    71
B       76       97    82

今日結語

這幾天對照了使用loc、iloc語法取得指定列資料的方式,
明顯可以比較出兩者差異loc是用資料名稱來取得資料,
iloc則是用index數值來取得資料,
兩者各有利弊,
當然還是要看當時專案的情況來決定囉。


上一篇
DAY11 Pandas使用loc、iloc語法取得指定列資料
下一篇
DAY13 Pandas使用loc、iloc的:語法取得指定範圍列資料
系列文
走在Pandas資料操縱與分析的路上持續前進30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言